import Vue from "vue";
import App from "./App.vue";
import router from "./router";
import store from "./store";
import commonJs from "@/tool/common";
import $crypto from "@/tool/crypto";
import validate from "@/tool/validateFunction";
import AsyncComputed from "vue-async-computed";
import debounce from "lodash/debounce";
import {
  Dropdown,
  Button,
  Menu,
  Icon,
  Form,
  Input,
  Layout,
  Breadcrumb,
  Select,
  DatePicker,
  Table,
  Divider,
  LocaleProvider,
  Modal,
  Radio,
  InputNumber,
  Tabs,
  Row,
  Col,
  Checkbox,
  Upload,
  Popover,
  message,
  notification,
  List,
  Avatar,
  Spin,
  icon,
  TreeSelect
} from "ant-design-vue";
import "@/styles/theme.less";
import "@/styles/common.less";
import "@/styles/reset.css";
import api from "./api/apiConfig";
import ajax from "./api/http";
Vue.prototype.$commonJs = commonJs;
Vue.prototype.$api = api;
Vue.prototype.$ajax = ajax;
Vue.prototype.$validate = validate;
Vue.prototype.$notification = notification;
Vue.prototype.$message = message;
Vue.prototype.$crypto = $crypto;
Vue.prototype.$debounce = debounce;

Vue.use(Dropdown);
Vue.use(Icon);
Vue.use(Menu);
Vue.use(Button);
Vue.use(Form);
Vue.use(Input);
Vue.use(Layout);
Vue.use(Breadcrumb);
Vue.use(Select);
Vue.use(DatePicker);
Vue.use(Table);
Vue.use(LocaleProvider);
Vue.use(Modal);
Vue.use(Radio);
Vue.use(InputNumber);
Vue.use(Tabs);
Vue.use(Row);
Vue.use(Col);
Vue.use(Divider);
Vue.use(Checkbox);
Vue.use(Popover);
Vue.use(Upload);
Vue.use(List);
Vue.use(Avatar);
Vue.use(Spin);
Vue.use(icon);
Vue.use(TreeSelect);
Vue.use(AsyncComputed);
Vue.config.productionTip = false;
new Vue({
  router,
  store,
  render: h => h(App)
}).$mount("#app");
